package com.agile.leetcode.hash;

import org.junit.Test;

import java.util.*;

/**
 * @Author:ChenZhangKun
 * @Date: 2021/12/1 11:54
 */
public class TreeMapTest {
    @Test
    public void test_1() {
        TreeMap<String, Integer> treeMap = new TreeMap<>();
        //新增元素:
        treeMap.put("hello", 1);
        treeMap.put("world", 2);
        treeMap.put("my", 3);
        treeMap.put("name", 4);
        treeMap.put("is", 5);
        treeMap.put("czk", 6);
        treeMap.put("i", 6);
        treeMap.put("am", 6);
        treeMap.put("a", 6);
        treeMap.put("developer", 6);
        System.out.println("添加元素后,TreeMap元素个数为：" + treeMap.size());
        Set<Map.Entry<String, Integer>> entries = treeMap.entrySet();
        for (Map.Entry<String, Integer> entry : entries) {
            System.out.println(entry.getKey() + "=========" + entry.getValue());
        }
        Set<String> set = treeMap.keySet();
        for (String key :set) {
            System.out.println(key);
        }
        Collection<Integer> values = treeMap.values();
        for (Integer value : values) {
            System.out.println(value);
        }
        // 获取第一个元素
        String s = treeMap.firstKey();
        System.out.println(s);
        // 获取集合内最后一个元素
        String lastKey =treeMap.lastKey();
        // 获取集合内的key小于"czk"的key
        String lowerKey =treeMap.lowerKey("czk");
        // 获取集合内的key大于等于"czk"的key
        String ceilingKey =treeMap.ceilingKey("czk");
        // 获取集合的key从"a"到"czk"的元素
        SortedMap<String,Integer> sortedMap =treeMap.subMap("a","my");

        // 删除元素：
        // 删除集合中key为"czk"的元素
        Integer removeValue = treeMap.remove("czk");
        // 清空集合元素：
        treeMap.clear();

        // 判断方法：
        // 判断集合是否为空
        boolean isEmpty = treeMap.isEmpty();
        // 判断集合的key中是否包含"czk"
        boolean isContain = treeMap.containsKey("czk");
        System.out.println("=================");
        SortedMap<String, Integer> tailMap = treeMap.tailMap("czk");
        tailMap.forEach((key,value)->{
            System.out.println(key+"======"+value);
        });
    }
}
